import {makeAutoObservable} from "mobx";

class TodoStore {

    todos = [{id: '001', name: "吃饭", done: true}]

    constructor() {
        makeAutoObservable(this)
    }

    addTodo = (todo) => {
        const flag = this.todos.some(item => todo.name === item.name);
        if (flag) {
            return alert('名称重复')
        }
        this.todos = [todo, ...this.todos]
    }
    updateTodo = (id, done) => {
        this.todos = this.todos.map((todoObj) => {
            if (todoObj.id === id) return {...todoObj, done}
            else return todoObj
        })
    }

    deleteTodo = (id) => {
        this.todos = this.todos.filter((item) => {
            return item.id !== id
        })
    }

    updateAllTodoDone = (done) => {
        this.todos.forEach(item => item.done = done)
    }

    clearAllDone = () => {
        this.todos = this.todos.filter((todoObj) => {
            return !todoObj.done
        })
    }
}

const todoStore = new TodoStore()

export {todoStore}